This disclosure relates to a method and apparatus for controlling the workload of individual computing systems in an information handling system in which incoming work requests are placed in a queue for processing by one or more computing systems.
Integrated circuits (ICs) are becoming more complex with increased density. Consequently, IC testing is also becoming more complex according to the complexity and density of ICs. An automated workload selection system (workload management system) submits jobs (compute intensive workloads, such as chip design) to the batch processing system to keep the batch processing system continually full of useful work. However, today's algorithms have several problems.
A batch processing system such as Load Leveler or LSF has the ability to receive submitted jobs and run the jobs on many computing systems simultaneously. When a machine is available, the job executes. If all machines in the batch system are running jobs, extra jobs are placed in a queue for execution in the future. Batch systems with a large number of computers represent a significant investment in capital. Keeping the batch system full of jobs (such that none of the computers in the processing system is idle) offers advantages such as increased efficiency and utilization.
Workload management systems in which incoming work requests are placed in a queue for assignment to an available computing system are well known. Since the frequency at which the incoming requests arrive may not be readily controlled, controlling the number of servers provides one means of controlling system performance (measured by queue delay or the like) in such a queued system. Thus, it is known in the art to start an additional server when the length of the queue being served reaches a certain high threshold or to stop a server when the length of the queue being served reaches a certain low threshold. While such an expedient may achieve its design objectives, it is unsatisfactory in a system in which other units of work besides the queued work requests are contending for system resources. Thus, even though providing an additional server for a queue may enhance the performance of the work requests in that queue, providing such a server may so degrade the performance of other units of work being handled by the system that the performance of the system as a whole deteriorates.
Most current operating system software is not able to take over the responsibility for managing the number of servers according to the end-user oriented goals specified for the work requests and considering other work with independent goals running in the same computer system.